/*
 * Copyright (c) 2025 CAX Conversion Project
 */
package com.comac.ins.isfd.service;

import com.anwen.mongo.service.IService;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.IsfdOperator;
import com.comac.ins.isfd.domain.bo.IsfdAnalysisParameterConfigBo;
import com.comac.ins.isfd.domain.bo.IsfdOperatorBo;
import com.comac.ins.isfd.domain.bo.IsfdOperatorParameterMapDeleteBo;
import com.comac.ins.isfd.domain.bo.query.IsfdOperatorQueryBo;
import com.comac.ins.isfd.domain.vo.IsfdOperatorCountObjectVo;
import com.comac.ins.isfd.domain.vo.IsfdOperatorVo;
import com.comac.ins.isfd.domain.vo.IsfdRelatedOperatorInfoVo;

import java.util.Collection;
import java.util.List;

/**
 * 算子service接口
 *
 * @author hxloongs
 * @date 2024-7-9
 */
public interface IIsfdOperatorService extends IService<IsfdOperator> {


    List<IsfdOperatorCountObjectVo> listCount();

    TableDataInfo<IsfdOperatorVo> queryPageList(IsfdOperatorQueryBo queryBo);

    IsfdOperatorVo queryDetail(String operatorRefId);

    Boolean add(IsfdOperatorBo isfdOperatorBo);

    Boolean update(IsfdOperatorBo isfdOperatorBo);

    Boolean deleteWithValidByIds(Collection<String> ids);


    /**
     * 获取当前算子对应的上游算子以及下游算子的输出参数列表
     */
    List<IsfdRelatedOperatorInfoVo> parameterOutputList(String operatorRefId, String analysisRefId);

    /**
     * 在数据库中新增上下游算子参数映射关系
     */
    Boolean parameterMapSave(IsfdAnalysisParameterConfigBo isfdAnalysisParameterConfigBo);

    /**
     * 修改已经配置的关系上游参数
     */
    Boolean parameterMapUpdate(IsfdAnalysisParameterConfigBo isfdAnalysisParameterConfigBo);


    /**
     * 删除已经配置的关系上游参数
     */
    Boolean parameterMapDelete(IsfdOperatorParameterMapDeleteBo isfdOperatorParameterMapDeleteBo);
}
